package javaBase;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

public class FinalTest {
    public static void main(String[] args) {
        final int num=20;
        System.out.println(num);
//        num=5;
        //对于基本类型来说，不可变说的是变量当中的数据不可改变
        //对于引用类型来说，不可变说的是变量当中的地址值不可改变
        Student stu1 = new Student("赵丽颖");
        System.out.println(stu1);
        System.out.println(stu1.getName()); //赵丽颖
        stu1=new Student( "霍建华");
        System.out.println(stu1);
        System.out.println(stu1. getName()); //霍建华
        System.out.println("==============");
        final Student stu2 = new Student("高圆圆");
        //错误写法! final的引用类型变量，其中的地址不可改变
        //stu2 = new Student( "赵又廷");
        System.out.println(stu2. getName()); //咼圆圆
        stu2.setName( "高圆圆圆圆圆圆");
        System.out.println(stu2. getName()); //高圆圆圆圆圆圆


    }
}
@AllArgsConstructor
@Data
@NoArgsConstructor
class Student{
    private String name;
}
final class FinalClass{

}
abstract class Fu{
    public  final void method1(){
        System.out.println("父类方法执行！");
    }
}
class Zi extends Fu{
    //不能覆盖父类中的final方法
//    @Override
//    public void method1() {
//        System.out.println("子类方法执行！");
//    }
}
class Person{
    private final String name;
    public Person(){
        name="kaka";
    }

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}